/*
 * HashTable.h
 *
 *  Created on: 11/10/2011
 *      Author: gisedaye
 */

#ifndef HASHTABLE_H_
#define HASHTABLE_H_
#include <string>
#include <fstream>
#include "utils/FileLoader.h"
#include "Bucket.h"

using namespace std;

class HashTable {
private:
	int size;
	string hashTableFile;
	int maxBucketNumber;
public:
	HashTable(string filename);
	string searchRecord(Record * record);
	int getValue(int postion);
	void duplicateSize();
	int getSize();
	void setSize(int size);
	void modifyBucketNumber(int dispersion, int value);
	void modifyBucketNumberJumps(int start, int dispersion, int bucketNumber);
	int getMaxBucketNumber();
	void setMaxBucketNumber(int maxBucketNumber);
	void insertValue(int position, int value);
	bool isMirrored();
	void truncate();
	virtual ~HashTable();
};

#endif /* HASHTABLE_H_ */
